# Python 2.6.4
# Project Euler, Problem 110
# Copyright 2010 Talha Zaman

def divs(n):
    lim, n, total = n, n**2, 2
    for i in xrange(2, int(lim)):
        if n%i==0: total += 1
    return total

def bd(n):
    p = 1
    for i in n:
        p *= 2*i+1
    return p/2

from mine import sieveprimes
pr = sieveprimes(100)

plist = [3,3,2,2,1,1,1,1,1,1,1,1]
sols = bd(plist)
num = 1
for i in range(len(plist)):
    num *= pr[i]**plist[i]
print sols
print num
if num<best and sols>4000000:
    best = num
    blist = plist
    print "better."
